/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package rpt.bd.cenario;

import java.util.Vector;

/**
 *
 * @author Roberto
 */
public class CConjuntoDados {

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    protected Vector fConjuntoDados = null;
    protected Vector fDadosDetalheConjuntoDados = null;
    
    protected CRegistroBd fRegistroAtual = null;
    protected CRegistroBd fRegistroAnterior = null;
    protected int fRegistroLinhaAtual = -1;
    protected int fRegistroLinhaAnterior = -1;


    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    public CConjuntoDados(final boolean aPreparar) {
        super();
        fConjuntoDados = new Vector();
        fDadosDetalheConjuntoDados = new Vector();
        preparar(aPreparar);
    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    protected void preparar(final boolean aPreparar) {
    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    public void carregarConjuntoDados() {
    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    public void recarregarConjuntoDados() {
        if (fConjuntoDados != null)
            fConjuntoDados.removeAllElements();
        carregarConjuntoDados();
    }
    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    public Vector getConjuntoDados() {
        return fConjuntoDados;
    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    public CRegistroBd getRegistroBdAtual() {
        return fRegistroAtual;
    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    public void setRegistroBdAtual(CRegistroBd aRegistroBdAtual) {
        fRegistroAtual = aRegistroBdAtual;
        eventoAntesMoverRegistro();
        sincronizarConjuntosDadosDetalhe();
        eventoDepoisMoverRegistro(fRegistroAtual);
    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    public int getRegistroBdLinhaAtual() {
        return fRegistroLinhaAtual;
    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    public void setRegistroBdLinhaAtual(int aRegistroBdLinhaAtual) {
        fRegistroLinhaAtual = aRegistroBdLinhaAtual;
    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    public CRegistroBd getRegistroBdAnterior() {
        return fRegistroAnterior;
    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    public void setRegistroBdAnterior(CRegistroBd aRegistroBdAnterior) {
        fRegistroAnterior = aRegistroBdAnterior;
    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    public int getRegistroBdLinhaAnterior() {
        return fRegistroLinhaAnterior;
    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    public void setRegistroBdLinhaAnterior(int aRegistroBdLinhaAnterior) {
        fRegistroLinhaAnterior = aRegistroBdLinhaAnterior;
    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    public void adicionarConjuntoDadosBdDetalhe(CConjuntoDados aConjuntoDadosDetalhe) {
        fDadosDetalheConjuntoDados.add(aConjuntoDadosDetalhe);
    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    public void adicionarRegistroBd(CRegistroBd aRegistroBd) {
        fConjuntoDados.add(aRegistroBd);
    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    public void removerRegistroBd(CRegistroBd aRegistroBd) {
        fConjuntoDados.remove(aRegistroBd);
    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    public void sincronizarConjuntosDadosDetalhe() {
        final int vNum = fDadosDetalheConjuntoDados.size();
        for (int vContador = 0; vContador < vNum; vContador++) {
            final CConjuntoDadosBd vConjuntoDadosDetalhe = (CConjuntoDadosBdCenario)fDadosDetalheConjuntoDados.get(vContador);
            sincronizarConjuntoDadosDetalhe(vConjuntoDadosDetalhe);
        }
    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    public void sincronizarConjuntoDadosDetalhe(
            final CConjuntoDados aConjuntoDadosBdDetalhe) {
    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    public void eventoAntesInserirRegistro() {
    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    public void eventoDepoisInserirRegistro(
            final CRegistro aRegistro) {
    }


    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    public void eventoAntesMoverRegistro() {

    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    public void eventoDepoisMoverRegistro(
            final CRegistro aRegistro) {
    }
    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    public void eventoAntesGravarRegistro() {

    }

    /**************************************************************************/
    /***                                                                    ***/
    /**************************************************************************/

    public void eventoDepoisGravarRegistro(
            final CRegistro aRegistro, 
            final EStatusOperacao aStatusOperacao, 
            final int vResultado) {
    }

}
